﻿using DomenModel;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;

namespace Model.Repositories.Interfaces
{
    public interface IItemCrud : ICrud<Item>
    {
        
        Item GetByName(string name);
        void Deactivate(string Name);
        void DeactivateById(int id);
        List<Item> GetListForItemPagination(string sortOrder, string searchString);
        List<Item> GetListForItemPagination(string sortOrder);
        List<Item> GetListForPagination(int page, int itemsOnPage, Expression<Func<Item, string>> predicate, bool descending);
        List<Item> GetListForPaginationWithFilter(int page, int itemsOnPage, Expression<Func<Item, bool>> predicateListSelectedField, Expression<Func<Item, string>> predicateSortBy, bool descending);
        long GetCountOfItems();
        long GetCountOfItems(Expression<Func<Item, bool>> predicate);
    }
}
